# 作者: 菅世博
# 2025年02月18日18时42分04秒
# 512326042@qq.com

# 1、有7个整数，其中有3个数出现了两次，1个数出现了一次， 找出出现了一次的那个数。
def find_single_num():
    """
    找出出现了一次的那个数
    :return:
    """
    my_list = [1, 1, 2, 2, 3, 6, 6]
    result = 0
    for i in my_list:
        result ^= i
    print(result)


# 2、写一个简单的for循环，从1打印到20，横着打为1排
def print_num():
    """
    打印1-20
    :return:
    """
    for i in range(1, 21):
        print(i, end=' ')


# 3、写一个say_hello函数打印多次hello并给该函数加备注（具体打印几次依靠传递的参数），然后调用say_hello，同时学会快速查看函数备注，及如何跳转到函数实现快捷操作（与上课一致）
def say_hello(num):
    """
    打印hello
    :param num: #打印次数
    :return:
    """
    for i in range(num):  # 循环5次
        print('hello', end=' ')  # 打印hello


# 4、写一个模块（命名不要用中文），模块里写3个打印函数，然后另外一个py文件调用该模块，并调用对应模块的函数，同时用一下下面操作 if __name__ == '__main__' :wd5.print_line()  # 调用函数
name = 'wd5'


def print_line():
    """
    打印一行
    :return:
    """
    print('-' * 50)
    print('*' * 50)
    print('#' * 50)


# 5、练习列表、元组，字典的各种操作（与上课的代码保持一致）
def list_tuple_dict():
    """
    列表、元组、字典的操作
    :return:
    """
    # 列表
    list1 = [1, 2, 3, 4, 5]
    # 1. 取值和取索引
    print(list1[0])
    print(list1.index(2))
    # 2. 修改
    print('-' * 50)
    list1[0] = 8
    print(list1)
    # 3. 增加
    print('-' * 50)
    list1.append(6)
    print(list1)
    list1.insert(5, 9)
    print(list1)
    # 4. 删除
    print('-' * 50)
    list1.pop()
    print(list1)
    list1.pop(0)
    print(list1)
    list1.remove(3)
    print(list1)
    list1.clear()
    print(list1)
    # 5.extend
    print('-' * 50)
    temp_list = ["孙悟空", "猪二哥", "沙师弟"]
    list1.extend(temp_list)
    print(list1)
    # 6.列表的数据统计
    print('-' * 50)
    list_len = len(list1)
    print("列表中包含 %d 个元素" % list_len)
    print(list1.count("孙悟空"))
    # 7.列表的排序
    print('-' * 50)
    print(list1.sort())
    print(list1)
    # 8.列表遍历
    print('-' * 50)
    for my_name in list1:
        print("我的名字叫 %s" % my_name)
    # 9.列表生成式
    print('-' * 50)
    num_list = [i for i in range(10)]  # 生成0-9的列表
    print(num_list)
    num_list = [i for i in range(10) if i % 2 == 0]  # 生成0-9的偶数列表
    print(num_list)
    # 元组
    print('-' * 50)
    tuple1 = (1, 2, 3, 4, 5)
    # 1. 取值和取索引
    print(tuple1[1])
    print(tuple1.index(2))
    # 2. 统计计数
    print('-' * 50)
    print(tuple1.count(2))
    print(len(tuple1))
    # 字典
    print('-' * 50)
    dict1 = {"name": "张三", "age": 18}
    # 1. 取值
    print(dict1["name"])
    print(dict1.get('name'))
    # 2. 增加/修改
    print('-' * 50)
    dict1["height"] = 1.75
    dict1["age"] = 20
    print(dict1)
    # 3. 删除
    print('-' * 50)
    dict1.pop("name")
    print(dict1)
    dict1.clear()
    print(dict1)


if __name__ == '__main__':  # 调用函数
    list_tuple_dict()
    # print_line()
    # say_hello(5)
    # print_num()
    # find_single_num()
